/**
 * 日期工具函数
 */

/**
 * 获取上个月月末日期
 * @returns {string} 格式：YYYYMMDD
 * 
 * 示例：
 * - 当前: 2025-10-20 → 返回: 20250930 (9月30日)
 * - 当前: 2025-01-15 → 返回: 20241231 (上年12月31日)
 */
export function getLastMonthEndDate() {
  const now = new Date()
  
  // 获取当前年月
  let year = now.getFullYear()
  let month = now.getMonth() // 0-11
  
  // 计算上个月
  if (month === 0) {
    // 如果是1月，上个月是去年12月
    year -= 1
    month = 11
  } else {
    month -= 1
  }
  
  // 获取上个月的最后一天
  // 通过创建下个月的第0天来获取上个月的最后一天
  const lastDay = new Date(year, month + 1, 0).getDate()
  
  // 格式化为 YYYYMMDD
  const yearStr = year.toString()
  const monthStr = String(month + 1).padStart(2, '0')
  const dayStr = String(lastDay).padStart(2, '0')
  
  return `${yearStr}${monthStr}${dayStr}`
}

/**
 * 获取当前日期
 * @returns {string} 格式：YYYYMMDD
 */
export function getCurrentDate() {
  const now = new Date()
  const year = now.getFullYear()
  const month = String(now.getMonth() + 1).padStart(2, '0')
  const day = String(now.getDate()).padStart(2, '0')
  return `${year}${month}${day}`
}

/**
 * 格式化日期显示
 * @param {string} dateStr - 格式：YYYYMMDD
 * @returns {string} 格式：YYYY-MM-DD
 */
export function formatDate(dateStr) {
  if (!dateStr || dateStr.length !== 8) return dateStr
  const year = dateStr.substring(0, 4)
  const month = dateStr.substring(4, 6)
  const day = dateStr.substring(6, 8)
  return `${year}-${month}-${day}`
}

